#ifndef MATTEST_H_
#define MATTEST_H_

#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>

#include "../../src/math/math.h"

using physicsworks::math::Mat;
using physicsworks::math::equal;
using physicsworks::math::Vec;

class MatTest : public CppUnit::TestFixture
{
	CPPUNIT_TEST_SUITE(MatTest);
	CPPUNIT_TEST(testSolver);
	CPPUNIT_TEST(testEquality);
	CPPUNIT_TEST(testDeterminant);
	CPPUNIT_TEST(testSize);
	CPPUNIT_TEST_SUITE_END();
	
private:
	Mat<float> *af55, *bf55, *af66, *bf66;
	Mat<double> *ad55, *bd55, *ad66, *bd66;
	Mat<float> *m0f, *m1f;
	Mat<double> *m0d, *m1d;
	
public:
	void setUp();
	void testSolver();
	void testEquality();
	void testDeterminant();
	void testSize();
	void testReturningRowsCols();
	void tearDown();
};

#endif /*MATTEST_H_*/
